Aula 30 - Outros gráficos

Módulo 3: Apresentando suas análises

Carolina Musso

PROFESP, DEMSP, MS

Esta semana

Aula 28 - Fatores

Variáveis categóricas ordinais com o pacote forcats

Aula 29 - “Facetamento”

Como apresentar vários gráficos relacionados juntos com facet_wrap e facet_grid

Aula 30 - Gráficos avançados

Extensões do ggplot , inclusão de texto e imagens, gráficos de Violino, Pizza… …

Leituras para aprofundamento

Gráfico de violino

Tipo um box-plot…

if (!require(pacman)) install.packages("pacman") 

pacman::p_load( tidyverse,rio, janitor, RColorBrewer,
                ggridges, emojifont, fontawesome
                ) 

linelist <- import("Exercicios/linelist_cleaned.rds") %>% 
  filter_all(all_vars(!is.na(.)))%>% # função nova!
  filter(wt_kg>0,
         age_years>=0) 
ggplot(linelist, aes(x = age_cat, y = wt_kg))+
  geom_violin() +
  labs(
    x = "Idade (anos)", y = "Peso (kg)")

Grafico de “pizza”

  • Controverso! Mas . . .

  • Muita gente gosta e usa!

sumario <- linelist %>% 
  filter(hospital!="Missing",
         hospital!="Other") %>% 
  tabyl(hospital) 

ggplot(sumario, aes(x="", y=n, fill=hospital)) +
  geom_col( width=1, color="black") +
  coord_polar("y", start=0)+
  theme_void()+
  scale_fill_brewer("", palette = "Set2")

Adicionar texto

ggplot(sumario, aes(x="", y=n, fill=hospital)) +
  geom_col( width=1, color="black") +
  coord_polar("y", start=0)+
  theme_void()+
  scale_fill_brewer("", palette = "Set2")+
  geom_text(aes(x=1.1, label = paste0(round(percent*100,0), "%")), 
            color = "white", size=4, 
            position = position_stack(vjust = 0.5))

ggridges

ggplot(linelist, aes(x = wt_kg, y=age_cat, fill=age_cat))+
  geom_density_ridges()+
  scale_fill_brewer("Faixa", palette = "Set3")

geom_textpath

pacman::p_load_gh("AllanCameron/geomtextpath")
ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
   geom_labelsmooth(aes(label = "Linha de tendencia"), 
                    text_smoothing = 30, 
                    fill = "lightblue",
                    color= "indianred") +
  theme_classic()

gg_img

set.seed(42)
linelist %>% 
  sample_n(50) %>% 
  filter(!is.na(gender)) %>% 
  mutate(figura=ifelse(outcome=="Death", fontawesome("fa-twitter"),
                       fontawesome("fa-coffee"))) %>% 
ggplot(aes(x = age, y = wt_kg, label=figura, color=figura))+
  scale_color_manual(values=c("#1DA1F2", "black"))+
   geom_text(family='fontawesome-webfont', size=4)+
  theme_void()+
  theme(legend.position = "none")

Obrigada!